﻿namespace SlamDunk.ValueObjects.Interfaces
{
    /// <summary>
    /// 可停用接口
    /// </summary>
    public interface IDisable
    {
        #region # 属性

        #region 是否启用 —— bool Enabled
        /// <summary>
        /// 是否启用
        /// </summary>
        bool Enabled { get; set; }
        #endregion

        #region 启用人账号 —— string EnablerAccount
        /// <summary>
        /// 启用人账号
        /// </summary>
        string EnablerAccount { get; set; }
        #endregion

        #region 启用人姓名 —— string EnablerName
        /// <summary>
        /// 启用人姓名
        /// </summary>
        string EnablerName { get; set; }
        #endregion

        #region 停用人账号 —— string DisablerAccount
        /// <summary>
        /// 停用人账号
        /// </summary>
        string DisablerAccount { get; set; }
        #endregion

        #region 停用人姓名 —— string DisablerName
        /// <summary>
        /// 停用人姓名
        /// </summary>
        string DisablerName { get; set; }
        #endregion

        #region 停用原因 —— string DisabledReason
        /// <summary>
        /// 停用原因
        /// </summary>
        string DisabledReason { get; set; }
        #endregion

        #endregion

        #region # 方法

        #region 启用 —— void Enable(string enablerAccount...
        /// <summary>
        /// 启用
        /// </summary>
        /// <param name="enablerAccount">启用人账号</param>
        /// <param name="enablerName">启用人姓名</param>
        void Enable(string enablerAccount, string enablerName);
        #endregion

        #region 停用 —— void Disable(string diablerAccount...
        /// <summary>
        /// 停用
        /// </summary>
        /// <param name="diablerAccount">停用人账号</param>
        /// <param name="diablerName">停用人姓名</param>
        /// <param name="reason">停用原因</param>
        void Disable(string diablerAccount, string diablerName, string reason);
        #endregion

        #endregion
    }
}
